2 REM ZOLLRASTERHARDCOPY 3 REM 4 REM VON NORBERT RAMEK 5 REM IGNAZ RIEDERKAI 17 6 REM A-5020 SALZBURG 7 REM 20 REM OPEN 1,4:PRINT#1,CHR$(15);CHR$(27);CHR$(108);CHR$(15); 100 SYS8*4096 110 *= $6400 120 .OPT OO 200 PRINT = $FFD2 250 CHKOUT = $FFC9 260 CLRCH = $FFCC 270 CLOSE = $FFC3 300 ZLE = *-1 310 SPLTE = *-2 320 PIXNR = *-3 330 TBPTR = *-4 340 TBSTRT = *-5 350 SPERR = *-6 360 ENDZLE = *-7 370 DRKBYTE = *-15 2000 ; 2001 ;HARDCOPY 2002 ;******** 2003 ; 2010 LDX #1;LOG. FILENUMMER 2020 JSR CHKOUT 2030 LDA #0;STARTADRESSE LI GRAF 2040 STA $FD;LO 2050 LDA #$20 2060 STA $FE;HI 2070 LDA #0;LF SPERREN 2080 STA SPERR 2090 STA ENDZLE 2100 LDA #9 2110 STA ZLE 2120 LDA #$1B;DRUCKER INITIALISIEREN 2130 JSR PRINT 2140 LDA #$40 2150 JSR PRINT 2160 JSR DRK;ZEILEN 1-10 (LI+RE) DRUCKEN 2170 LDA #$80;STARTADRESSE ZEILE 11 2180 STA $FD;LO 2190 LDA #$2C 2200 STA $FE;HI 2210 LDA #9 2220 STA ZLE 2230 JSR DRK;ZEILEN 11-20 DRUCKEN 2240 LDA #0;STARTADRESSE ZEILE 21 2250 STA $FD;LO 2260 LDA #$39 2270 STA $FE;HI 2280 LDA #5 2290 STA ZLE;UNGLEICH 0 ALS FLAG 2300 STA ENDZLE 2310 JSR DRK;ZEILEN 21-25 DRUCKEN 2320 LDX #0;VORSCHUB 10/216 + INITIALISIEREN 2330 ES3 LDA ESCTB3,X 2340 JSR PRINT 2350 INX 2360 CPX #6 2370 BNE ES3 2380 JSR CLRCH 2390 LDA #1;LOG. FILENUMMER 2400 JSR CLOSE 2410 RTS;ZU BASIC 2500 ;--- AUSDRUCK 10 GRAFIKZEILEN (LI+RE) --- 2510 DRK LDA #0;STARTEWERT IN TABELLE 2520 STA TBSTRT 2530 ;1. DRUCKDURCHGANG 2540 DRK1 JSR LF 2550 LDA #1;LF FREIGEBEN 2560 STA SPERR 2570 JSR GRMOD;GRAFIKMODUS EINLEITEN 2580 JSR DD;1 BILDSCHIRMZEILE DRUCKEN 2590 JSR AD1;GRAFIKADR. AUF RE GRAF 2600 JSR DD 2610 LDA #$0A;LF 2620 JSR PRINT 2630 JSR AD2;GRAFIKADR. AUF LI GRAF 2640 JSR AD3;ADRESSE ZURUECK ZEILENANFANG 2650 ;2. DRUCKDURCHGANG 2660 JSR GRMOD;GRAFIKMODUS EINLEITEN 2670 INC TBSTRT 2680 JSR DD;1 BILDSCHIRMZEILE DRUCKEN 2690 JSR AD1;GRAFIKADR. AUF RE GRAF 2700 JSR DD 2710 LDA #$0A;LF 2720 JSR PRINT 2730 JSR AD2;GRAFIKADR. AUF LI GRAF 2740 JSR AD3;ADRESSE ZURUECK ZEILENANFANG 2750 ;3. DRUCKDURCHGANG 2760 JSR GRMOD;GRAFIKMODUS EINLEITEN 2770 INC TBSTRT 2780 JSR DD;1 BILDSCHIRMZEILE DRUCKEN 2790 JSR AD1;GRAFIKADR. AUF RE GRAF 2800 JSR DD 2810 JSR AD2;GRAFIKADR. AUF LI GRAF 2820 CLC;STARTWERT IN TAB. ERHOEHEN 2830 LDA TBSTRT 2840 ADC #22;+2 MAL INC = 24/216 2850 STA TBSTRT 2860 DEC ZLE 2870 BNE DRK1;NAECHSTE ZEILE 2880 RTS 3000 ;--- AUSDRUCK 1 DRUCKERZEILE --- 3010 DD LDA #40 3020 STA SPLTE 3030 DD9 LDA TBSTRT;STARTWERT IN TABELLE 3040 STA TBPTR 3050 LDA #0;DRUCKERBYTES LOESCHEN 3060 LDY #7 3070 LS1 STA DRKBYTE,Y 3080 DEY 3090 BPL LS1 3100 ;NADELN VON OBEREN 8*8 FELD SETZEN 3110 LDY #0 3120 DD1 LDA ($FD),Y;BITMUSTER GRAFIKBYTE 3130 LDX #0;GRAFIKPIXEL 0-7 3140 DD2 ASL;LINKES BIT INS CARRY 3150 BCC DD3;WENN PIXEL GELOESCHT 3160 PHA;VERSCHOBENES GRAFIKBYTE MERKEN 3170 STX PIXNR;MERKEN 3180 LDX TBPTR 3190 LDA NADELTB,X;NUMMER ZUGEORDN. NADEL 3200 JSR UMR1;IN DRUCKER-GRAFIKBYTE UMRECHNEN 3210 LDX PIXNR;ZURUECK 3220 ORA DRKBYTE,X 3230 STA DRKBYTE,X;BIT FUER NADEL SETZEN 3240 PLA;VERSCHOBENES GRAFIKBYTE ZURUECK 3250 DD3 INX 3260 CPX #8 3270 BNE DD2 3280 INC TBPTR;AUF NAECHSTE NADEL 3290 INC TBPTR 3300 INC TBPTR 3310 INY 3320 CPY #8 3330 BNE DD1;NAECHSTES GRAFIKBYTE 3500 ;GRAFIKADRESSE AUF UNTERES 8*8 FELD 3510 CLC;+320 3520 LDA #$40;LO 3530 ADC $FD 3540 STA $FD 3550 LDA #1;HI 3560 ADC $FE 3570 STA $FE 3600 ;NADELN VON UNTEREN 8*8 FELD SETZEN 3610 LDA TBSTRT;STARTWERT IN TABELLE 3620 STA TBPTR 3630 LDY #0 3640 DD4 LDA ENDZLE;AUF UNTEREN RAND TESTEN 3650 BEQ DD10 3660 LDA ZLE 3670 CMP #1 3680 BEQ DD11;NADELN U. FELD UEBERSPR. 3690 DD10 LDA ($FD),Y;BITMUSTER GRAFIKBYTE 3700 LDX #0;GRAFIKPIXEL 0-7 3710 DD5 ASL;LINKES BIT INS CARRY 3720 BCC DD6;WENN PIXEL GELOESCHT 3730 PHA;VERSCHOBENES GRAFIKBYTE MERKEN 3740 STX PIXNR;MERKEN 3750 LDX TBPTR 3760 LDA NADELTB,X;NUMMER ZUGEORDN. NADEL 3770 JSR UMR2;IN DRUCKER-GRAFIKBYTE UMRECHNEN 3780 LDX PIXNR 3790 ORA DRKBYTE,X 3800 STA DRKBYTE,X;BIT FUER NADEL SETZEN 3810 PLA;VERSCHOBENES GRAFIKBYTE ZURUECK 3820 DD6 INX 3830 CPX #8 3840 BNE DD5 3850 INC TBPTR;AUF NAECHSTE NADEL 3860 INC TBPTR 3870 INC TBPTR 3880 INY 3890 CPY #8 3900 BNE DD4;NAECHSTES GRAFIKBYTE 4000 ;GRAFIKADRESSE AUF NAECHSTES FELD OBEN 4010 DD11 SEC;-320+8=-312 4020 LDA $FD;LO 4030 SBC #$38 4040 STA $FD 4050 LDA $FE;HI 4060 SBC #1 4070 STA $FE 4080 ;DATEN ZUM DRUCKER SCHICKEN 4090 LDX #0 4100 DD7 LDA DRKBYTE,X 4110 JSR PRINT 4120 JSR PRINT 4130 JSR PRINT 4140 INX 4150 CPX #8 4160 BNE DD7 4170 DEC SPLTE 4180 BEQ DD8 4190 JMP DD9;NEACHSTES FELD 4200 DD8 RTS 4500 ;--- UMRECHNUNG TABELLENWERT IN DRUCKERBYTE --- 4510 UMR1 LSR;HI-NIBBEL HERAUSFILTERN 4520 LSR 4530 LSR 4540 LSR 4550 TAX 4560 LDA TABUMR,X 4570 RTS 4580 UMR2 AND #%00001111;LO-NIBBEL HERAUSFILTERN 4590 TAX 4600 LDA TABUMR,X 4610 RTS 5000 ; 5001 ;DIV. UNTERPROGRAMME 5002 ;******************* 5003 ; 5010 ;GRAFIKMODUS EINLEITEN 5020 GRMOD LDX #0 5030 ES1 LDA ESCTB1,X 5040 JSR PRINT 5050 INX 5060 CPX #7 5070 BNE ES1 5080 RTS 5200 ;VORSCHUB 22/216 ZOLL 5210 LF LDA SPERR;BEIM 1. MAL UEBERSPRINGEN 5220 BEQ LF1 5230 LDX #0 5240 ES2 LDA ESCTB2,X 5250 JSR PRINT 5260 INX 5270 CPX #4 5280 BNE ES2 5290 LF1 RTS 5400 ;GRAFIKADRESSE AUF RE GRAF ERHOEHEN 5410 AD1 CLC;+8192-320=+7872 5420 LDA $FD;LO 5430 ADC #$C0 5440 STA $FD 5450 LDA $FE;HI 5460 ADC #$1E 5470 STA $FE 5480 RTS 5600 ;GRAFIKADRESSE AUF LI GRAF ERNIEDRIGEN 5610 AD2 SEC;-8192 5620 LDA $FE;HI 5630 SBC #$20 5640 STA $FE 5650 RTS 5800 ;GRAFIKADRESSE ZURUECK AUF ZEILENANFANG 5810 AD3 SEC;-320 5820 LDA $FD;LO 5830 SBC #$40 5840 STA $FD 5850 LDA $FE 5860 SBC #1;HI 5870 STA $FE 5880 RTS 6000 ; 6001 ;ESC-TABELLEN 6002 ;************ 6003 ; 6010 ESCTB1 .BYTE $1B,$33,$01;ZEILENABSTAND 1/216 6020 .BYTE $1B,$5A,$80,$07;ESC Z 1920 PUNKTE 6030 ESCTB2 .BYTE $1B,$33,$16,$0A;ZEILENABSTAND 22/216 + LF 6040 ESCTB3 .BYTE $1B,$33,$0A,$0A,$1B,$40;ZEILENABSTAND 10/216+LF+INIT 6050 TABUMR .BYTE 0,$80,$40,$20 6060 .BYTE $10,$08,$04,$02,$01 7000 ; 7001 ;ZUORDNUNGSTABELLE 7002 ;***************** 7003 ; 7010 NADELTB .BYTE $18,$18,$18 7020 .BYTE $20,$20,$20 7030 .BYTE $30,$30,$20 7040 .BYTE $40,$40,$30 7050 .BYTE $50,$50,$40 7060 .BYTE $60,$50,$50 7070 .BYTE $70,$60,$60 7080 .BYTE $80,$70,$70 7100 ; 7110 .BYTE $08,$07,$07 7120 .BYTE $10,$18,$18 7130 .BYTE $20,$20,$20 7140 .BYTE $30,$30,$30 7150 .BYTE $40,$40,$30 7160 .BYTE $50,$50,$40 7170 .BYTE $60,$60,$50 7180 .BYTE $70,$60,$60 7200 ; 7210 .BYTE $07,$07,$06 7220 .BYTE $18,$07,$07 7230 .BYTE $10,$18,$18 7240 .BYTE $20,$20,$20 7250 .BYTE $30,$30,$30 7260 .BYTE $40,$40,$40 7270 .BYTE $50,$50,$40 7280 .BYTE $60,$60,$50 7300 ; 7310 .BYTE $06,$06,$05 7320 .BYTE $07,$07,$06 7330 .BYTE $18,$08,$07 7340 .BYTE $20,$18,$18 7350 .BYTE $20,$20,$20 7360 .BYTE $30,$30,$30 7370 .BYTE $40,$40,$40 7380 .BYTE $50,$50,$50 7400 ; 7410 .BYTE $05,$05,$05 7420 .BYTE $06,$06,$06 7430 .BYTE $07,$07,$06 7440 .BYTE $18,$08,$07 7450 .BYTE $20,$10,$18 7460 .BYTE $30,$20,$20 7470 .BYTE $30,$30,$30 7480 .BYTE $40,$40,$40 7500 ; 7510 .BYTE $04,$04,$04 7520 .BYTE $05,$05,$05 7530 .BYTE $06,$06,$06 7540 .BYTE $07,$07,$07 7550 .BYTE $18,$18,$07 7560 .BYTE $20,$10,$18 7570 .BYTE $30,$20,$20 7580 .BYTE $40,$30,$30 7600 ; 7610 .BYTE $04,$03,$03 7620 .BYTE $05,$04,$04 7630 .BYTE $05,$05,$05 7640 .BYTE $06,$06,$06 7650 .BYTE $07,$07,$07 7660 .BYTE $18,$18,$08 7670 .BYTE $20,$20,$18 7680 .BYTE $30,$20,$20 7700 ; 7710 .BYTE $03,$03,$02 7720 .BYTE $04,$03,$03 7730 .BYTE $05,$04,$04 7740 .BYTE $06,$05,$05 7750 .BYTE $06,$06,$06 7760 .BYTE $07,$07,$07 7770 .BYTE $18,$18,$08 7780 .BYTE $20,$20,$10 7800 ; 7810 .BYTE $02,$02,$01 7820 .BYTE $03,$03,$02 7830 .BYTE $04,$04,$03 7840 .BYTE $05,$04,$04 7850 .BYTE $06,$05,$05 7860 .BYTE $07,$06,$06 7870 .BYTE $07,$07,$07 7880 .BYTE $18,$18,$18 7890 ;